//package com.sinochem.yunlian.ship.ucenter.rest;
//
//import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.List;
//
//import org.springframework.context.annotation.Bean;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.stereotype.Component;
//import org.springframework.web.client.RestTemplate;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.sinochem.yunlian.ship.ucenter.common.MD5Util;
//import com.sinochem.yunlian.ship.ucenter.entity.UcShipLocation;
//
//@Component
//public class ShipLocationDataRest {
//
//	private static final String BD_URL = "http://api.map.baidu.com/geoconv/v1/";
//	private static final String BD_AK = "i8M61cYNhNPKqKeEaxzArzDjaKtXKY2m";
//
//	@Bean
//	RestTemplate restTemplate() {
//		return new RestTemplate();
//	}
//
//	/**
//	 * 获取船舶位置数据
//	 *
//	 * @param url
//	 * @param mmsi
//	 * @param token
//	 * @param curDate
//	 * @return
//	 * @throws Exception
//	 */
//	public List<UcShipLocation> requestRestUrl(String url, String mmsi, String token, String curDate) throws Exception {
//		HttpHeaders headers = new HttpHeaders();
//		MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//		headers.setContentType(type);
//		headers.add("Accept", MediaType.APPLICATION_JSON.toString());
//
//		String requestUrl = url + "?mmsi={mmsi}&key={key}";
//
//		String key = MD5Util.MD5(token + curDate);
//		JSONObject result = restTemplate().getForObject(requestUrl, JSONObject.class, mmsi, key);
//
//		int status =  result.getInteger("status");
//		if(status == 0){
//			if(result.getJSONArray("data")!=null && result.getJSONArray("data").size()>0)
//			   return this.setData(result.getJSONArray("data"));
//			else
//			   return null;
//		}else{
//			return null;
//		}
//	}
//
//	private List<UcShipLocation> setData(JSONArray jsonArray){
//		List<UcShipLocation> list = new ArrayList<UcShipLocation>();
//		if(jsonArray!=null && jsonArray.size()>0){
//			for (Iterator iterator = jsonArray.iterator(); iterator.hasNext();) {
//		          JSONObject jsonObject = (JSONObject) iterator.next();
//		          UcShipLocation ucShipLocation = new UcShipLocation();
//		          ucShipLocation.setMmsi(jsonObject.getString("mmsi"));
//		          ucShipLocation.setImo(jsonObject.getString("imo"));
//		          ucShipLocation.setShipName(jsonObject.getString("shipname"));
//		          ucShipLocation.setCallSign(jsonObject.getString("callsign"));
//		          ucShipLocation.setChineseShipName(jsonObject.getString("chineseshipname"));
//		          ucShipLocation.setNavStatus(jsonObject.getString("navStatus"));
//		          ucShipLocation.setSpeed(jsonObject.getString("speed"));
//		          ucShipLocation.setHeading(jsonObject.getString("heading"));
//		          ucShipLocation.setCourse(jsonObject.getString("course"));
//		          ucShipLocation.setDraught(jsonObject.getString("draught"));
//		          ucShipLocation.setPostTime(jsonObject.getString("posttime"));
//		          ucShipLocation.setLongitude(jsonObject.getString("longitude"));
//		          ucShipLocation.setLatitude(jsonObject.getString("latitude"));
//		          this.requestBdRestUrl(ucShipLocation);
//		          list.add(ucShipLocation);
//			}
//			return list;
//		}else{
//			return list;
//		}
//	}
//
//	//GPS转百度坐标
//	/**
//	 * 获取船舶位置百度经纬度数据
//	 *
//	 * @param ucShipLocation
//	 */
//	public void requestBdRestUrl(UcShipLocation ucShipLocation) {
//		HttpHeaders headers = new HttpHeaders();
//		MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//		headers.setContentType(type);
//		headers.add("Accept", MediaType.APPLICATION_JSON.toString());
//
//		String requestUrl = BD_URL + "?coords={coords}&from=1&to=5&ak={ak}";
//
//		String coords = ucShipLocation.getLongitude() + "," + ucShipLocation.getLatitude();
//
//		String resp = restTemplate().getForObject(requestUrl, String.class, coords, BD_AK);
//		JSONObject result = JSON.parseObject(resp);
//
//		int status =  result.getInteger("status");
//		if(status == 0){
//			if(result.getJSONArray("result")!=null && result.getJSONArray("result").size()>0)
//			{
//				JSONObject jsonObject = result.getJSONArray("result").getJSONObject(0);
//		     	ucShipLocation.setBdLongitude(jsonObject.getString("x"));
//		     	ucShipLocation.setBdLatitude(jsonObject.getString("y"));
//			}
//		}
//	}
//
//}
